export default [
  {
    name: "输入输出组件库",
    children: [
      {
        name: "常数",
        description: "这是一个常数节点，out = value",
        type: "model.constant",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number|array[number]|object",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "number|array[number]" }],
      },
      {
        name: "文本输出",
        description: "查看输入的参数值",
        type: "view.view",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "any", paramRes: undefined }],
        outArr: [],
      },
      {
        name: "图表输出",
        description: "输入通道参数 x 和 y，绘制出对应的图像",
        type: "graph.plot",
        selected: false,
        initParams: [],
        inArr: [
          {
            paramName: "x",
            paramType: "array",
            paramRes: undefined, // []
          },
          {
            paramName: "y",
            paramType: "array",
            paramRes: undefined,
          },
        ],
        outArr: [],
      },
      {
        name: "初始化参数",
        description: "构造子系统的节点，可以在子系统内构建一套逻辑流程",
        type: "subsystem.system",
        selected: false,
        initParams: [],
        inArr: [],
        outArr: [],
        // 判断是不是 子系统 节点
        isGroup: true,
        kids: [], // 子系统的节点逻辑保存在 kids 中
      },
    ],
  },
  {
    name: "Mux模块",
    children: [
      {
        name: "Mux",
        description: "合并数据称为一个向量或矩阵",
        type: "mux.mux",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [
          { paramName: "1", paramType: "number|array", paramRes: undefined },
        ],
        outArr: [{ paramName: "out", paramType: "array", paramRes: undefined }],
      },
      {
        name: "Demux",
        description: "将一个向量或矩阵拆分开来",
        type: "mux.demux",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [{ paramName: "in", paramType: "array", paramRes: undefined }],
        outArr: [
          { paramName: "1", paramType: "number|array", paramRes: undefined },
          { paramName: "2", paramType: "number|array", paramRes: undefined },
          { paramName: "3", paramType: "number|array", paramRes: undefined },
          { paramName: "4", paramType: "number|array", paramRes: undefined },
        ],
      },
    ],
  },
  {
    name: "子系统模块库",
    children: [
      {
        name: "in",
        description: "输入端口",
        type: "port.in",
        selected: false,
        initParams: [],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "any" }],
      },
      {
        name: "out",
        description: "输出端口",
        type: "port.out",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "any" }],
        outArr: [],
      },
      {
        name: "Subsystem",
        description: "构造子系统的节点，可以在子系统内构建一套逻辑流程",
        type: "subsystem.system",
        selected: false,
        initParams: [],
        inArr: [],
        outArr: [],
        // 判断是不是 子系统 节点
        isGroup: true,
        kids: [], // 子系统的节点逻辑保存在 kids 中
      },
    ],
  },
  {
    name: "原子数学组件库",
    children: [
      {
        name: "常数",
        description: "这是一个常数节点，out = value",
        type: "model.constant",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number|array[number]",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "number|array[number]" }],
      },
      {
        name: "+",
        description: "这是一个简单的加法模块，sum = x1 + x2.",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "x1", paramType: "number|array[number]|object" },
          { paramName: "x2", paramType: "number|array[number]|object" },
        ],
        outArr: [{ paramName: "sum", paramType: "number" }],
      },
      {
        name: "-",
        description: "这是一个简单的减法模块，bias = x1 - x2.",
        type: "model.subtract",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "x1", paramType: "number" },
          { paramName: "x2", paramType: "number" },
        ],
        outArr: [{ paramName: "bias", paramType: "number" }],
      },
      {
        name: "×",
        description: "这是一个简单的乘法法模块，mul = x1 × x2.",
        type: "model.multiply",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "x1", paramType: "number" },
          { paramName: "x2", paramType: "number" },
        ],
        outArr: [{ paramName: "mul", paramType: "number" }],
      },
      {
        name: "÷",
        description: "这是一个简单的减法模块，div = x1 ÷ x2.",
        type: "model.divide",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "x1", paramType: "number" },
          { paramName: "x2", paramType: "number" },
        ],
        outArr: [{ paramName: "div", paramType: "number" }],
      },
      {
        name: "π",
        description: "常数π",
        type: "model.pi",
        selected: false,
        initParams: [],
        inArr: [],
        outArr: [{ paramName: "pi", paramType: "number" }],
      },
      {
        name: "sin x",
        description: "正弦运算节点，out = sin(x)",
        type: "model.sin",
        initParams: [],
        inArr: [{ paramName: "x", paramType: "number" }],
        outArr: [{ paramName: "sin", paramType: "number" }],
      },
      {
        name: "cos x",
        description: "余弦运算节点，out = cos(x)",
        type: "model.cos",
        initParams: [],
        inArr: [{ paramName: "x", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "tan x",
        description: "正切运算节点，out = tan(x)",
        type: "model.tan",
        initParams: [],
        inArr: [{ paramName: "x", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "e(自然常数)",
        description: "自然常数e",
        type: "model.e",
        selected: false,
        initParams: [],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "exp x",
        description: "指数运算节点，out = e^x",
        type: "model.exp",
        initParams: [],
        inArr: [{ paramName: "x", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "ln x",
        description: "对数运算节点，out = ln(x)",
        type: "model.ln",
        initParams: [],
        inArr: [{ paramName: "x", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "pow x",
        description: "次方运算节点，out = base^x",
        type: "model.pow",
        initParams: [],
        inArr: [
          { paramName: "base", paramType: "number" },
          { paramName: "x", paramType: "number" },
        ],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "log x",
        description:
          "对数运算节点，返回以 base 为底 x 的对数， out = log_base(x)",
        type: "model.log",
        inArr: [
          { paramName: "base", paramType: "number" },
          { paramName: "x", paramType: "number" },
        ],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
    ],
  },
  {
    name: "连续系统模型",
    children: [
      // {
      //   name: "Func",
      //   description:
      //     "函数节点，可以使用它来构建一个函数，类似于子系统Subsystem，不过函数节点只能作为一个单输入单输出的节点，函数默认为 y = x。如果是多输入多输出节点，推荐使用子系统Subsystem节点。",
      //   type: "model.func",
      //   selected: false,
      //   initParams: [],
      //   inArr: [{ paramName: "x", paramType: "any" }],
      //   outArr: [{ paramName: "y", paramType: "any" }],
      //   hasFunc: true,
      //   func: [],
      // },
      {
        name: "RK4-ODE",
        description: "四阶龙格库塔结算节点",
        type: "model.rk4",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "cur_s", paramType: "number|array" },
          { paramName: "step", paramType: "number" },
        ],
        outArr: [{ paramName: "next_s", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
      {
        name: "RK2-ODE",
        description: "二阶龙格库塔结算节点",
        type: "model.rk2",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "cur_s", paramType: "number|array" },
          { paramName: "step", paramType: "number" },
        ],
        outArr: [{ paramName: "next_s", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
      {
        name: "Adams-ODE",
        description: "亚当姆斯法",
        type: "model.Adams",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "cur_s", paramType: "number|array" },
          { paramName: "step", paramType: "number" },
        ],
        outArr: [{ paramName: "next_s", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
      {
        name: "Euler-ODE",
        description: "欧拉法",
        type: "model.Euler",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "cur_s", paramType: "number|array" },
          { paramName: "step", paramType: "number" },
        ],
        outArr: [{ paramName: "next_s", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
      {
        name: "M-Euler-ODE",
        description: "改进欧拉法",
        type: "model.MEuler",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "cur_s", paramType: "number|array" },
          { paramName: "step", paramType: "number" },
        ],
        outArr: [{ paramName: "next_s", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
      {
        name: "Newton-Cotes-NI",
        description: "牛顿-柯特思公式",
        type: "model.NewtonCotes",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "cur_s", paramType: "number|array" },
          { paramName: "step", paramType: "number" },
        ],
        outArr: [{ paramName: "next_s", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
      {
        name: "Romberg-NI",
        description: "龙贝格法",
        type: "model.Romberg",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "cur_s", paramType: "number|array" },
          { paramName: "step", paramType: "number" },
        ],
        outArr: [{ paramName: "next_s", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
      {
        name: "Simpson-NI",
        description: "辛普森法",
        type: "model.Romberg",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "cur_s", paramType: "number|array" },
          { paramName: "step", paramType: "number" },
        ],
        outArr: [{ paramName: "next_s", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
      {
        name: "Ellipse-PDE",
        description: "椭圆型偏微分方程",
        type: "model.EcllipsePDE",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "UL", paramType: "string|number|array" },
          { paramName: "LeftL", paramType: "string|number|array" },
          { paramName: "LL", paramType: "string" },
          { paramName: "RL", paramType: "string" },
          { paramName: "step", paramType: "string" },
          { paramName: "BC_func", paramType: "string" },
          { paramName: "c", paramType: "string" },
          { paramName: "a", paramType: "string" },
          { paramName: "f_func", paramType: "string" },
        ],
        outArr: [{ paramName: "next_s", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
      {
        name: "Parabolic-PDE",
        description: "抛物型偏微分方程",
        type: "model.ParabolicPDE",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "R_BC_func", paramType: "string" },
          { paramName: "L_BC_func", paramType: "string" },
          { paramName: "phi", paramType: "string" },
          { paramName: "dl", paramType: "string" },
          { paramName: "L", paramType: "string" },
          { paramName: "dt", paramType: "string" },
          { paramName: "T", paramType: "string" },
          { paramName: "d", paramType: "string" },
          { paramName: "c", paramType: "string" },
          { paramName: "a", paramType: "string" },
          { paramName: "f_func", paramType: "string" },
        ],
        outArr: [{ paramName: "next_s", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
      {
        name: "Hyperbolic-PDE",
        description: "双曲型偏微分方程",
        type: "model.HyperbolicPDE",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "R_BC_func", paramType: "string" },
          { paramName: "L_BC_func", paramType: "string" },
          { paramName: "Omega_func", paramType: "string" },
          { paramName: "g_func", paramType: "string" },
          { paramName: "dl", paramType: "string" },
          { paramName: "L", paramType: "string" },
          { paramName: "dt", paramType: "string" },
          { paramName: "T", paramType: "string" },
          { paramName: "d", paramType: "string" },
          { paramName: "c", paramType: "string" },
          { paramName: "a", paramType: "string" },
          { paramName: "f_func", paramType: "string" },
        ],
        outArr: [{ paramName: "next_s", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
      {
        name: "BiotSavart",
        description: "毕奥-萨伐尔",
        type: "model.BiotSavart",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "µ0", paramType: "string" },
          { paramName: "σ", paramType: "string" },
          { paramName: "R", paramType: "string" },
          { paramName: "H", paramType: "string" },
          { paramName: "D", paramType: "string" },
          { paramName: "l", paramType: "string" },
          { paramName: "x", paramType: "string" },
          { paramName: "y", paramType: "string" },
          { paramName: "z", paramType: "string" },
        ],
        outArr: [{ paramName: "B0", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
      {
        name: "MaxwellEquations",
        description: "麦克斯韦方程组",
        type: "model.MaxwellEquations",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "µ0", paramType: "string" },
          { paramName: "B0", paramType: "string" },
          { paramName: "x", paramType: "string" },
          { paramName: "y", paramType: "string" },
          { paramName: "z", paramType: "string" },
        ],
        outArr: [{ paramName: "H(B)", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
    ],
  },
  {
    name: "离散事件系统模型",
    children: [
      // {
      //   name: "Func",
      //   description:
      //     "函数节点，可以使用它来构建一个函数，类似于子系统Subsystem，不过函数节点只能作为一个单输入单输出的节点，函数默认为 y = x。如果是多输入多输出节点，推荐使用子系统Subsystem节点。",
      //   type: "model.func",
      //   selected: false,
      //   initParams: [],
      //   inArr: [{ paramName: "x", paramType: "any" }],
      //   outArr: [{ paramName: "y", paramType: "any" }],
      //   hasFunc: true,
      //   func: [],
      // },
      {
        name: "Send",
        description: "发送",
        type: "model.send",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number|array" }],
        outArr: [{ paramName: "out", paramType: "number|array" }],
        hasFunc: true,
        func: [],
      },
    ],
  },
  {
    name: "控制模块库",
    children: [
      {
        name: "Default",
        description:
          "默认参数节点，用于为循环的点提供默认参数，用于启动第一次循环，使用类似 Constant 节点",
        type: "model.default",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number|array[number]",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "number|array[number]" }],
      },
      {
        name: "Condition",
        description: "条件判断节点，当判断条件成功时，后续节点才会被执行",
        type: "model.condition",
        selected: false,
        initParams: [
          {
            paramName: "cond",
            paramType: "string",
            paramRes: "gt",
            display: {
              type: "select",
              options: [
                {
                  label: ">",
                  value: "gt",
                },
                {
                  label: "<",
                  value: "lt",
                },
                {
                  label: "=",
                  value: "eq",
                },
                {
                  label: ">=",
                  value: "ge",
                },
                {
                  label: "<=",
                  value: "le",
                },
              ],
            },
          },
          {
            paramName: "compVal",
            paramType: "number",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [{ paramName: "val", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "Switch",
        description:
          "开关节点，如果开关的判断条件 cond 为 true，则返回 if_true 端口的值，否则返回 if_false 端口的值",
        type: "model.switch",
        selected: "model.switch",
        initParams: [
          {
            paramName: "cond",
            paramType: "string",
            paramRes: "gt",
            display: {
              type: "select",
              options: [
                {
                  label: ">",
                  value: "gt",
                },
                {
                  label: "<",
                  value: "lt",
                },
                {
                  label: "=",
                  value: "eq",
                },
                {
                  label: ">=",
                  value: "ge",
                },
                {
                  label: "<=",
                  value: "le",
                },
              ],
            },
          },
          {
            paramName: "compVal",
            paramType: "number",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [
          { paramName: "if_true", paramType: "any" },
          { paramName: "cond", paramType: "any" },
          { paramName: "if_false", paramType: "any" },
        ],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "if",
        description: "条件判断节点，当判断条件成功时，后续节点才会被执行",
        type: "control.if",
        selected: false,
        initParams: [
          {
            paramName: "cond",
            paramType: "string",
            paramRes: "gt",
            display: {
              type: "select",
              options: [
                {
                  label: ">",
                  value: "gt",
                },
                {
                  label: "<",
                  value: "lt",
                },
                {
                  label: "=",
                  value: "eq",
                },
                {
                  label: ">=",
                  value: "ge",
                },
                {
                  label: "<=",
                  value: "le",
                },
              ],
            },
          },
          {
            paramName: "value",
            paramType: "any",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [
          { paramName: "no", paramType: "number" },
          { paramName: "yes", paramType: "number" },
        ],
      },
    ],
  },
  {
    name: "深度学习模型",
    children: [
      {
        name: "Image",
        description: "图像输入",
        type: "model.Image",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "number|array[number]" }],
      },
      {
        name: "torch.concat",
        description: "concat",
        type: "model.concat",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "torch.mean",
        description: "mean",
        type: "model.mean",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "Conv_1d",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "Conv_2d",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "Conv_3d",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "空间坐标分割层",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "卷积层",
        description: "CNN",
        type: "model.CNN",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [
          { paramName: "classification", paramType: "number" },
          { paramName: "regression", paramType: "number" },
        ],
      },
      {
        name: "卷积分类",
        description: "卷积分类",
        type: "model.classification",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "卷积回归",
        description: "卷积回归",
        type: "model.regression",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "7*7 conv,64/2",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "maxpool,/2",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [
          { paramName: "out1", paramType: "number" },
          { paramName: "out2", paramType: "number" },
        ],
      },
      {
        name: "3*3 conv,64",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "3*3 conv,64",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [
          { paramName: "out1", paramType: "number" },
          { paramName: "out2", paramType: "number" },
        ],
      },
      {
        name: "3*3 conv,64",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "in1", paramType: "number" },
          { paramName: "in2", paramType: "number" },
        ],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "3*3 conv,128,/2",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "in1", paramType: "number" },
          { paramName: "in2", paramType: "number" },
        ],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "3*3 conv,128",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [
          { paramName: "out1", paramType: "number" },
          { paramName: "out2", paramType: "number" },
        ],
      },
      {
        name: "3*3 conv,128",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "in1", paramType: "number" },
          { paramName: "in2", paramType: "number" },
        ],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "3*3 conv,256,/2",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "in1", paramType: "number" },
          { paramName: "in2", paramType: "number" },
        ],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "3*3 conv,256",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [
          { paramName: "out1", paramType: "number" },
          { paramName: "out2", paramType: "number" },
        ],
      },
      {
        name: "3*3 conv,256",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "in1", paramType: "number" },
          { paramName: "in2", paramType: "number" },
        ],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "3*3 conv,512,/2",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "in1", paramType: "number" },
          { paramName: "in2", paramType: "number" },
        ],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "3*3 conv,512",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [
          { paramName: "out1", paramType: "number" },
          { paramName: "out2", paramType: "number" },
        ],
      },
      {
        name: "3*3 conv,512",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "in1", paramType: "number" },
          { paramName: "in2", paramType: "number" },
        ],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "3*3 conv,512",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "avgPool",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "in1", paramType: "number" },
          { paramName: "in2", paramType: "number" },
        ],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
      {
        name: "FC,(512,1000)",
        description: "空间坐标分割层",
        type: "model.add",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "in", paramType: "number" }],
        outArr: [{ paramName: "out", paramType: "number" }],
      },
    ],
  },
  {
    name: "强化学习模型",
    children: [
      {
        name: "Q-Learning",
        description: "启发式算法",
        type: "model.Image",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "number|array[number]" }],
      },
      {
        name: "DQN",
        description: "启发式算法",
        type: "model.Image",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "number|array[number]" }],
      },
    ],
  },
  {
    name: "启发式算法",
    children: [
      {
        name: "粒子群算法",
        description: "启发式算法",
        type: "model.Image",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "number|array[number]" }],
      },
      {
        name: "蚁群算法",
        description: "启发式算法",
        type: "model.Image",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "number|array[number]" }],
      },
      {
        name: "遗传算法",
        description: "启发式算法",
        type: "model.Image",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "number|array[number]" }],
      },
      {
        name: "NSGA-2",
        description: "非快速支配排序遗传算法",
        type: "model.Image",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "number|array[number]" }],
      },
      {
        name: "模拟退火",
        description: "启发式算法",
        type: "model.Image",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "number|array[number]" }],
      },
      {
        name: "差分进化",
        description: "启发式算法",
        type: "model.Image",
        selected: false,
        initParams: [
          {
            paramName: "value",
            paramType: "number",
            paramRes: 1,
            display: {
              type: "input",
            },
          },
        ],
        inArr: [],
        outArr: [{ paramName: "out", paramType: "number|array[number]" }],
      },
    ],
  },
  {
    name: "航空航天模型库",
    children: [
      {
        name: "导弹参数库",
        description: "构造子系统的节点，可以在子系统内构建一套逻辑流程",
        type: "subsystem.system",
        selected: false,
        initParams: [],
        inArr: [],
        outArr: [],
        // 判断是不是 子系统 节点
        isGroup: true,
        kids: [], // 子系统的节点逻辑保存在 kids 中
      },
      {
        name: "地球参数库",
        description: "构造子系统的节点，可以在子系统内构建一套逻辑流程",
        type: "model.earth",
        selected: false,
        initParams: [],
        inArr: [],
        outArr: [
          { paramName: "Re", paramType: "array", paramRes: undefined },
          { paramName: "g0", paramType: "array", paramRes: undefined },
          { paramName: "Rz", paramType: "array", paramRes: undefined },
        ],
        // 判断是不是 子系统 节点
        isGroup: true,
        kids: [], // 子系统的节点逻辑保存在 kids 中
      },
      {
        name: "大气参数库",
        description: "输入通道参数 x 和 y，绘制出对应的图像",
        type: "model.plot",
        selected: false,
        initParams: [],
        inArr: [],
        outArr: [
          {
            paramName: "alpha_inter1",
            paramType: "array",
            paramRes: undefined,
          },
          { paramName: "Ma_inter1", paramType: "array", paramRes: undefined },
          { paramName: "Cx_inter", paramType: "array", paramRes: undefined },
          {
            paramName: "alpha_inter2",
            paramType: "array",
            paramRes: undefined,
          },
          { paramName: "Ma_inter2", paramType: "array", paramRes: undefined },
          { paramName: "Cn_inter", paramType: "array", paramRes: undefined },
          { paramName: "area", paramType: "array", paramRes: undefined },
        ],
      },
      {
        name: "高度解算模块",
        description: "输入参数y 和 地球半径Re，输出导弹高度",
        type: "model.Height",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "Re", paramType: "number", paramRes: undefined },
          { paramName: "y", paramType: "array", paramRes: undefined },
        ],
        outArr: [{ paramName: "H", paramType: "number", paramRes: undefined }],
      },
      {
        name: "离地高度解算模块",
        description: "输入参数y 和 地球半径Re，输出导弹高度",
        type: "model.Height",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "Re", paramType: "number", paramRes: undefined },
          { paramName: "y", paramType: "array", paramRes: undefined },
          { paramName: "x", paramType: "array", paramRes: undefined },
        ],
        outArr: [{ paramName: "H", paramType: "number", paramRes: undefined }],
      },
      {
        name: "空速及大气密度解算",
        description: "输入参数y 和 地球半径Re，输出导弹高度",
        type: "model.Height",
        selected: false,
        initParams: [],
        inArr: [{ paramName: "H", paramType: "number", paramRes: undefined }],
        outArr: [
          { paramName: "rho", paramType: "number", paramRes: undefined },
          { paramName: "c", paramType: "number", paramRes: undefined },
        ],
      },
      {
        name: "马赫数解算",
        description: "输入通道参数 x 和 y，绘制出对应的图像",
        type: "model.plot",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "c", paramType: "array", paramRes: undefined },
          { paramName: "V", paramType: "array", paramRes: undefined },
        ],
        outArr: [{ paramName: "Ma", paramType: "array", paramRes: undefined }],
      },
      {
        name: "气动参数解算",
        description: "输入通道参数 x 和 y，绘制出对应的图像",
        type: "model.plot",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "x", paramType: "array", paramRes: undefined },
          { paramName: "y", paramType: "array", paramRes: undefined },
        ],
        outArr: [],
      },
      {
        name: "气动力解算",
        description: "输入通道参数 x 和 y，绘制出对应的图像",
        type: "model.plot",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "Cx", paramType: "array", paramRes: undefined },
          { paramName: "Cy", paramType: "array", paramRes: undefined },
          { paramName: "area", paramType: "array", paramRes: undefined },
          { paramName: "rho", paramType: "array", paramRes: undefined },
          { paramName: "v", paramType: "array", paramRes: undefined },
        ],
        outArr: [
          { paramName: "X", paramType: "array", paramRes: undefined },
          { paramName: "Y", paramType: "array", paramRes: undefined },
        ],
      },
      {
        name: "状态增量解算",
        description: "输入通道参数 x 和 y，绘制出对应的图像",
        type: "model.plot",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "X", paramType: "array", paramRes: undefined },
          { paramName: "Y", paramType: "array", paramRes: undefined },
          { paramName: "m", paramType: "array", paramRes: undefined },
          { paramName: "g0", paramType: "array", paramRes: undefined },
          { paramName: "Re", paramType: "array", paramRes: undefined },
          { paramName: "x", paramType: "array", paramRes: undefined },
          { paramName: "y", paramType: "array", paramRes: undefined },
          { paramName: "theta", paramType: "array", paramRes: undefined },
          { paramName: "V", paramType: "array", paramRes: undefined },
          { paramName: "alpha", paramType: "array", paramRes: undefined },
        ],
        outArr: [
          { paramName: "dV", paramType: "array", paramRes: undefined },
          { paramName: "dtheta", paramType: "array", paramRes: undefined },
          { paramName: "dx", paramType: "array", paramRes: undefined },
          { paramName: "dy", paramType: "array", paramRes: undefined },
        ],
      },
      {
        name: "气动插值模块_1d",
        description: "输入通道参数 x 和 y，绘制出对应的图像",
        type: "model.plot",
        selected: false,
        initParams: [],
        inArr: [],
        outArr: [],
      },
      {
        name: "气动插值模块_2d",
        description: "输入通道参数 x 和 y，绘制出对应的图像",
        type: "model.plot",
        selected: false,
        initParams: [],
        inArr: [
          { paramName: "alpha_inter", paramType: "array", paramRes: undefined },
          { paramName: "Ma_inter", paramType: "array", paramRes: undefined },
          { paramName: "Cx_inter", paramType: "array", paramRes: undefined },
          { paramName: "alpha", paramType: "array", paramRes: undefined },
          { paramName: "Ma", paramType: "array", paramRes: undefined },
        ],
        outArr: [{ paramName: "C", paramType: "array", paramRes: undefined }],
      },
    ],
  },
  // {
  //   name: "输出查看模块库",
  //   children: [
  //     {
  //       name: "View",
  //       description: "查看输入的参数值",
  //       type: "view.view",
  //       selected: false,
  //       initParams: [],
  //       inArr: [{ paramName: "in", paramType: "any", paramRes: undefined }],
  //       outArr: [],
  //     },
  //   ],
  // },
  // {
  //   name: "绘图模块库",
  //   children: [
  //     {
  //       name: "plot",
  //       description: "输入通道参数 x 和 y，绘制出对应的图像",
  //       type: "graph.plot",
  //       selected: false,
  //       initParams: [],
  //       inArr: [
  //         { paramName: "x", paramType: "array", paramRes: undefined },
  //         { paramName: "y", paramType: "array", paramRes: undefined },
  //       ],
  //       outArr: [],
  //     },
  //   ],
  // },
];
